package main

import (
	"fmt"
	// "strconv"
	// "unsafe"
	// "go_code/20220714gotest/module01/utils"
)

func main() {
	// fmt.Println("你好 Gitee, 你好 Go!!!!!!!!!!!!!!!!")
	// fmt.Println(utils.PrintChinese("打个招呼"))
	// fmt.Println(utils.PrintEnglish(1))
	// fmt.Println("tom说 \"jack\"")
	// fmt.Println("天龙八部雪山飞狐\n张飞")
	// var n float32 = 10.32
	// fmt.Println("price=", n)
	// fmt.Printf("n的数据类型:%T, n占用的字节数是%d", n, unsafe.Sizeof(n))

	// var n1 float32 = 0.00089
	// fmt.Println("n1=", n1)
	// var n2 float64 = -7809656.09
	// fmt.Println("n2=", n2)

	// var n3 float32 = -123.0000901
	// fmt.Println("n3=", n3)
	// var n4 float64 = -123.0000901
	// fmt.Println("n4=", n4)
	// var c1 byte = 'a'
	// var c2 byte = '0'
	// fmt.Println("c1=", c1)
	// fmt.Println("c2=", c2)
	// fmt.Printf("c1=%c c2=%d\n", c1, c2)

	// var c4 int = 22269
	// fmt.Printf("c4=%c\n", c4)

	// var n1 = 10 + 'a'
	// var n2 = 'a'
	// fmt.Printf("n1的类型%T", n1)
	// fmt.Printf("\nn2的类型%T", n2)
	// fmt.Println("\nn1=", n1)

	// var flag bool
	// fmt.Println(flag)

	// var i int32 = 1000000000
	// i2 := int8(i)
	// fmt.Printf("i2类型=%T", i2)
	// fmt.Printf("\nit's type is %T", i)

	// var vb int64 = 10024101555
	// fmt.Printf("vb's type is %T", vb)
	// vbt := int8(vb)
	// fmt.Printf("\nvbt's type is %T", vbt)
	// fmt.Println(vbt)

	// var num1 int32 = 12
	// var num2 int8
	// var num3 int8
	// num3 = int8(num1) + 127
	// fmt.Println(num3)
	// num2 = int8(num1)
	// fmt.Println(num2)

	// var num1 int = 99
	// var num2 float64 = 23.456
	// var b bool = true
	// var myChar byte = 't'
	// var str string

	// str = fmt.Sprintf("%d", num1)
	// fmt.Println(str)
	// fmt.Printf("str type %T str=%q\n", str, str)

	// var num3 int = 99
	// var num4 float64 = 23.456
	// var b2 bool = true
	// str := strconv.FormatInt(int64(num3), 10)
	// fmt.Printf("str type %T str=%q\n", str, str)

	// str = strconv.FormatFloat(num4, 'f', 10, 64)
	// fmt.Printf("str type %T str=%q\n", str, str)

	// str = strconv.FormatBool(b2)
	// fmt.Printf("str type %T str=%q\n", str, str)

	// var num5 int64 = 4567
	// str = strconv.Itoa(int(num5))
	// fmt.Printf("str type %T str=%q\n", str, str)

	// var str string = "true"
	// var b bool
	// b, _ = strconv.ParseBool(str)
	// fmt.Printf("b type %T b=%v\n", b, b)
	// fmt.Println(b)

	// var str2 string = "1234590"
	// var n1 int64
	// var n2 int
	// n1, _ = strconv.ParseInt(str2, 10, 64)
	// fmt.Printf("n1 type %T n1=%v\n", n1, n1)
	// n2 = int(n1)
	// fmt.Printf("n2 type %T n2=%v\n", n2, n2)

	// var str3 string = "12.65465"
	// var f1 float64
	// f1, _ = strconv.ParseFloat(str3, 64)
	// fmt.Printf("f1 type %T f1=%v\n", f1, f1)

	// var i int = 10
	// fmt.Println(&i)

	// var ptr *int = &i
	// fmt.Printf("ptr=%v\n", ptr)
	// fmt.Println(ptr)

	// var num int = 1
	// fmt.Println(&num)
	// var i = 999
	// var ptr *int = &i
	// fmt.Println(ptr)
	// fmt.Println(*ptr)
	// ptr = &num
	// fmt.Println(ptr)
	// fmt.Println(*ptr)

	// var num int = 9
	// fmt.Printf("num address is %v\n", &num)

	// var ptr *int
	// fmt.Printf("ptr initial address is %v\n", ptr)
	// ptr = &num
	// fmt.Println("=======", &num)
	// fmt.Println(ptr)
	// fmt.Println(*ptr)
	// *ptr = 10
	// fmt.Printf("指针指向10时,ptr的地址值为%v\n", ptr)
	// fmt.Println("num=", num)
	// fmt.Println("num address=", &num)

	var a int = 300
	var b int = 400
	var ptr *int
	ptr = &a
	*ptr = 100
	fmt.Println(a)
	ptr = &b
	*ptr = 200
	fmt.Println(b)
	fmt.Printf("a=%d b=%d *ptr=%d", a, b, *ptr)
}
